#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;;
//const int N = 100010;
//int a[N];
//int main()
//{
//    int n, q;
//    cin >> n >> q;
//    for (int i = 0; i < n; i++) cin >> a[i];
//
//
//    while (q--)
//    {
//        int x;
//        cin >> x;
//
//        int l = 0, r = n - 1;
//        while (l < r)
//        {
//            int mid = l + r >> 1;
//            if (a[mid] >= x) r = mid;
//            else l = mid + 1;
//        }
//        if (a[r] != x) cout << "-1 -1" << endl;
//        else
//        {
//            cout << l << " ";
//
//            int l = 0, r = n - 1;
//            while (l < r)
//            {
//                int mid = l + r + 1 >> 1;
//                if (a[mid] <= x) l = mid;
//                else r = mid - 1;
//            }
//            cout << r << endl;
//        }
//    }
//    return 0;
//}

class Solution {
public:
    bool checkPerfectNumber(int num) {
        vector<int> v;
        for (int i = 1; i <= num / i; i++)
        {
            if (num % i == 0)
            {
                v.push_back(i);
                if (num / i != i) v.push_back(num / i);
            }
        }
        int sum = -num;
        for (auto e : v)
        {
            sum += e;
        }
        return num == sum;
    }
};

int main()
{
    Solution s;
    bool ans=s.checkPerfectNumber(28);
    cout << ans << endl;
    return 0;
}